package io.mft.dev.base.config;

import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

import cn.hutool.core.bean.BeanUtil;
import io.mft.dev.base.ApiThreadExecutorConfig;
import io.mft.dev.base.config.builder.ApiThreadExecutorConfigBuilder;

/**
 * 本地线程池配置加载
 * 
 * @说明：TODO
 * @类型名称：LocalApiThreadExecutorConfigProvideLoader
 * @创建者: 胡常建
 * @创建时间: 2021年8月16日 下午5:41:59
 * @修改者: 胡常建
 * @修改时间: 2021年8月16日 下午5:41:59
 */
public class LocalApiThreadExecutorConfigProvideLoader extends LocalConfigProvideLoader {

	public LocalApiThreadExecutorConfigProvideLoader(ClassLoader classLoader) {
		super(classLoader);
	}

	@Override
	public Map<String, Object> load() {
		Map<String, Object> kv = new ConcurrentHashMap<String, Object>();
		ApiThreadExecutorConfigBuilder apiThreadExecutorConfigBuilder=new ApiThreadExecutorConfigBuilder(classLoader);
		List<ApiThreadExecutorConfig> apiThreadExecutorConfigs=apiThreadExecutorConfigBuilder.build();
		apiThreadExecutorConfigs.forEach(config->{
			Map<String, Object> map=BeanUtil.beanToMap(config);
			kv.put(config.threadExecutorId(), map);
		});
		return kv;
	}
	@Override
	public String namespace() {
		return "apiThreadExecutor";
	}
}
